﻿#define _CRT_SECURE_NO_WARNINGS

//78.
//给定一个 n 个元素有序的（升序）整型数组 nums 和一个目标值 target  ，
//写一个函数搜索 nums 中的 target，如果目标值存在返回下标，否则返回 - 1。
int search(int* nums, int numsSize, int target) {
    // 定义左右两边界
    int left = 0;
    int right = numsSize - 1;
    // 当区间⻓度⼤于0时，查找中点元素
    while (left <= right) {
        // 定义中点
        int mid = (left + right) / 2;
        // 中点元素⼤于⽬标值
        if (nums[mid] > target) {
            right = mid - 1;
        }
        // 中点元素⼩于⽬标值
        else if (nums[mid] < target) {
            left = mid + 1;
        }
        // 中点元素等于⽬标值
        else
            return mid;
    }
    // 未找到⽬标值，返回-1
    return -1;
}